data structure [Data Structure & Algorithm] 최소 신장 트리 & 크루스칼 알고리즘 (shortest path) 신장 트리(Spanning Tree): Tree 자료구조 중 하나입니다 하나의 graph가 있을때 모든 node를 포함하면서 cycle이 존재하지 않는, 부분 graph를 뜻 합니다 최소 신장 트리(Minimum Spanning Tree, MST): 하나의 graph에서 여러개의 신장 트리가 나올 수 있는데, 이 중 최소한의 비용의 트리를 최소 신장 트리라 합니다 MST 를 찾는 알고리즘으로... Spanning Treealgorithmdata structurepythonMinimum Spanning TreeMST이코테MST #1. 자료구조와 알고리즘 자료구조와 알고리즘의 관계 컴퓨터에서 자료를 정리하고 조직화하는 다양한 구조 선형 자료구조 리스트 : 가장 자유로운 선형 자료구조 스택, 큐, 덱 : 항목의 접근이 전단이나 후단으로 제한 ㄴ힙 트리는 우선순위 큐 ㄴ이진 탐색트리나 AVL트리 : 탐색을 위한 트리 구조 그래프 : 가장 복잡한 연결 관계를 표현 다양한 문제를 해결하기 위한 기본 구조로 사용된다. 컴퓨터로 문제를 풀기 위한 단계적... data structuredata structure Data Structure #1 - Hash Table 해시테이블은 해시 함수를 활용해서 키를 해시값으로 매핑하고, 이 해시값을 색인(인덱스) 또는 주소 삼아 데이터를 key와 함께 저장하는 자료구조를 뜻한다. ➡️ [key:value]로 데이터를 저장하는 자료구조 해시 테이블의 구성 해시테이블은 키(key), 값(value), 해시함수(hash function), 해시(hash), 데이터가 저장되는 곳(bucket, slot)으로 구성되어 있다... computer sciencedata structurecomputer science [JavaScript] TWIL : 자료구조 1/3 Stack, Queue (20/10.22~10.27) Data Structure sprint를 진행중이다. 이번 스프린트는 대표적인 자료구조를 직접 구현해본다. 자료구조는, 자료(data)를 다루는 방식이다. 현재 1/3지점까지 진행했고, 구현한 자료구조는 총 2가지이다. 1. Stack 2. Queue 이번 sprint는 대학교에서 한 학기를 잡고 하는 정도의 양이라, 그렇게 깊은 속성까지는 이해하기 어렵다는 엔지니어분들의 말씀이 있었다. 나... JavaScriptTWILdata structureJavaScript # 2. 배열 메모리 시작 주소 + (찾고자 하는 인덱스 x 한 블록에 할당된 메모리 블록 개수)로 계산하면 배열은 이렇게 원하는 원소에 바로 접근할 수 있습니다. 그러나 이런 동일한 타입 배열에 다른 타입의 원소를 삽입하려고 할 때 컴파일러는 전체 배열의 구조를 해제하고 다시 예전의 배열처럼 비연속적인 메모리를 할당합니다. 기존의 배열로 WebGL 사용에 있어서 바이너리 데이터를 효과적으로 처리할 수 없... data structuredata structure [자료 구조 in JavaScript] 이중 연결 리스트(Doubly Linked List) 단일 연결 리스트는 다음 노드를 가르키는 한 개의 포인터만 가지고 있기 때문에 전체 리스트를 순차적 한 방향 순회만 가능하다는 문제가 있다. 이 문제를 극복하기 위한 것이 이전 노드와 다음 노드를 가르키는 두 개의 포인터를 포함한 연결 리스트인 이중 연결 리스트이다. 단일 연결 리스트와 마찬가지로 이중 연결 리스트의 시작점을 헤드라고 한다. 마지막 노드는 테일이라고 하며 테일을 이용해 새 노... data structuredata structure Analysis of Algorithm -> Therefore time complexity can be represented as a function of n : T(n) Algorithm A : n*n Algorithm C : Add 1 n*n times Algorithm C : Addition ops n*n, Insertion ops n*n -> Total ops = 2n^2 If we assume all operations ... data structuredata structure # 5. 연결 리스트 동적인 자료구조로서 연결리스트는 필요할 때 마다 원소를 추가/삭제할 수 있도 크가 계속 변합니다. 연결 리스트는 인덱스를 유지하는 대신 다른 원소를 가리키는 포인터를 가지고 있습니다. 첫 번째 노드 : head 마지막 노드 : tail - next pointer는 null을 가르킴 singly-linked list : 다음 노드를 가리키는 하나의 포인터만 소유 doubly-linked lis... data structuredata structure Algorithm & Data Structure - Linked List(2) 원소 삭제의 경우에도 원래의 연결 리스트의 연산과 이름이 다른 것을 알 수 있다. 이는 배열/연결 리스트의 길이에 비례하는 O(N)으로 표기할 수 있다. 배열과 연결 리스트의 차이가 가장 극명하게 나는 부분으로, 결과 먼저 말하자면 배열은 O(N), 연결 리스트는 O(1)로 표기할 수 있다. 그러나 연결 리스트의 경우 배열처럼 값들이 연속되게 위치하지 않고 뒷 노드가 무엇인지의 정보만 담고있... 연결 리스트pythondata structurelinked list자료구조파이썬알고리즘algorithmalgorithm 하루5분코딩"Linked list" ## Linked list :노드의 연결로 이루어진 자료구조 노드에 다음번 노드의 주소를 가지고 있는 형태이다. linked list 는 배열과 비교했을때 특정 데이터를 검색하는 시간이 오래 소유된다. index 를 통해서 찾는 배열과 달리 하나 하나 찾아봐야 하기 때문이다. ✓ 노드 추가 ✓ 노드 삭제 두 자료를 보면 다음 요소의 주소를 알기 때문에 배열보다 요소를 추가하거나 삭제하기 쉽다... data structurelinked listdata structure [TIL 15][Data Structure] Linked List, Stack, Queue 정의되지 않은 갯수의 데이터를 관리하기 위해 리스트를 사용한다.(<-> 배열) 보통 데이터의 삽입과 삭제가 많이 이뤄지는 환경에서 유용함 그림 그릴때 다음 Node 주소 공간이라고 써야했는데, 데이터라고 써버렸다.. 연결리스트에는 단방향과 양방향이 있는데, 단방향은 위 그림처럼 자신의 한 부분은 다음 Node의 주소공간을 가지고 있고, 양방향은 이전 Node 주소공간과 다음 Node의 주소 ... TILdata structureTIL 단일 연결 리스트(Singly linked list)_구조 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조 데이터를 담고 있는 노드들이 연결되어 있는데, 노드의 포인터가 다음이나 이전의 노드와의 연결을 담당함 head 다음에 연결된 노드를 가리키는 변수 맨 처음 노드를 가리키는 변수 참고... pythondata structurelinked listsingly linked listdata structure
[Data Structure & Algorithm] 최소 신장 트리 & 크루스칼 알고리즘 (shortest path) 신장 트리(Spanning Tree): Tree 자료구조 중 하나입니다 하나의 graph가 있을때 모든 node를 포함하면서 cycle이 존재하지 않는, 부분 graph를 뜻 합니다 최소 신장 트리(Minimum Spanning Tree, MST): 하나의 graph에서 여러개의 신장 트리가 나올 수 있는데, 이 중 최소한의 비용의 트리를 최소 신장 트리라 합니다 MST 를 찾는 알고리즘으로... Spanning Treealgorithmdata structurepythonMinimum Spanning TreeMST이코테MST #1. 자료구조와 알고리즘 자료구조와 알고리즘의 관계 컴퓨터에서 자료를 정리하고 조직화하는 다양한 구조 선형 자료구조 리스트 : 가장 자유로운 선형 자료구조 스택, 큐, 덱 : 항목의 접근이 전단이나 후단으로 제한 ㄴ힙 트리는 우선순위 큐 ㄴ이진 탐색트리나 AVL트리 : 탐색을 위한 트리 구조 그래프 : 가장 복잡한 연결 관계를 표현 다양한 문제를 해결하기 위한 기본 구조로 사용된다. 컴퓨터로 문제를 풀기 위한 단계적... data structuredata structure Data Structure #1 - Hash Table 해시테이블은 해시 함수를 활용해서 키를 해시값으로 매핑하고, 이 해시값을 색인(인덱스) 또는 주소 삼아 데이터를 key와 함께 저장하는 자료구조를 뜻한다. ➡️ [key:value]로 데이터를 저장하는 자료구조 해시 테이블의 구성 해시테이블은 키(key), 값(value), 해시함수(hash function), 해시(hash), 데이터가 저장되는 곳(bucket, slot)으로 구성되어 있다... computer sciencedata structurecomputer science [JavaScript] TWIL : 자료구조 1/3 Stack, Queue (20/10.22~10.27) Data Structure sprint를 진행중이다. 이번 스프린트는 대표적인 자료구조를 직접 구현해본다. 자료구조는, 자료(data)를 다루는 방식이다. 현재 1/3지점까지 진행했고, 구현한 자료구조는 총 2가지이다. 1. Stack 2. Queue 이번 sprint는 대학교에서 한 학기를 잡고 하는 정도의 양이라, 그렇게 깊은 속성까지는 이해하기 어렵다는 엔지니어분들의 말씀이 있었다. 나... JavaScriptTWILdata structureJavaScript # 2. 배열 메모리 시작 주소 + (찾고자 하는 인덱스 x 한 블록에 할당된 메모리 블록 개수)로 계산하면 배열은 이렇게 원하는 원소에 바로 접근할 수 있습니다. 그러나 이런 동일한 타입 배열에 다른 타입의 원소를 삽입하려고 할 때 컴파일러는 전체 배열의 구조를 해제하고 다시 예전의 배열처럼 비연속적인 메모리를 할당합니다. 기존의 배열로 WebGL 사용에 있어서 바이너리 데이터를 효과적으로 처리할 수 없... data structuredata structure [자료 구조 in JavaScript] 이중 연결 리스트(Doubly Linked List) 단일 연결 리스트는 다음 노드를 가르키는 한 개의 포인터만 가지고 있기 때문에 전체 리스트를 순차적 한 방향 순회만 가능하다는 문제가 있다. 이 문제를 극복하기 위한 것이 이전 노드와 다음 노드를 가르키는 두 개의 포인터를 포함한 연결 리스트인 이중 연결 리스트이다. 단일 연결 리스트와 마찬가지로 이중 연결 리스트의 시작점을 헤드라고 한다. 마지막 노드는 테일이라고 하며 테일을 이용해 새 노... data structuredata structure Analysis of Algorithm -> Therefore time complexity can be represented as a function of n : T(n) Algorithm A : n*n Algorithm C : Add 1 n*n times Algorithm C : Addition ops n*n, Insertion ops n*n -> Total ops = 2n^2 If we assume all operations ... data structuredata structure # 5. 연결 리스트 동적인 자료구조로서 연결리스트는 필요할 때 마다 원소를 추가/삭제할 수 있도 크가 계속 변합니다. 연결 리스트는 인덱스를 유지하는 대신 다른 원소를 가리키는 포인터를 가지고 있습니다. 첫 번째 노드 : head 마지막 노드 : tail - next pointer는 null을 가르킴 singly-linked list : 다음 노드를 가리키는 하나의 포인터만 소유 doubly-linked lis... data structuredata structure Algorithm & Data Structure - Linked List(2) 원소 삭제의 경우에도 원래의 연결 리스트의 연산과 이름이 다른 것을 알 수 있다. 이는 배열/연결 리스트의 길이에 비례하는 O(N)으로 표기할 수 있다. 배열과 연결 리스트의 차이가 가장 극명하게 나는 부분으로, 결과 먼저 말하자면 배열은 O(N), 연결 리스트는 O(1)로 표기할 수 있다. 그러나 연결 리스트의 경우 배열처럼 값들이 연속되게 위치하지 않고 뒷 노드가 무엇인지의 정보만 담고있... 연결 리스트pythondata structurelinked list자료구조파이썬알고리즘algorithmalgorithm 하루5분코딩"Linked list" ## Linked list :노드의 연결로 이루어진 자료구조 노드에 다음번 노드의 주소를 가지고 있는 형태이다. linked list 는 배열과 비교했을때 특정 데이터를 검색하는 시간이 오래 소유된다. index 를 통해서 찾는 배열과 달리 하나 하나 찾아봐야 하기 때문이다. ✓ 노드 추가 ✓ 노드 삭제 두 자료를 보면 다음 요소의 주소를 알기 때문에 배열보다 요소를 추가하거나 삭제하기 쉽다... data structurelinked listdata structure [TIL 15][Data Structure] Linked List, Stack, Queue 정의되지 않은 갯수의 데이터를 관리하기 위해 리스트를 사용한다.(<-> 배열) 보통 데이터의 삽입과 삭제가 많이 이뤄지는 환경에서 유용함 그림 그릴때 다음 Node 주소 공간이라고 써야했는데, 데이터라고 써버렸다.. 연결리스트에는 단방향과 양방향이 있는데, 단방향은 위 그림처럼 자신의 한 부분은 다음 Node의 주소공간을 가지고 있고, 양방향은 이전 Node 주소공간과 다음 Node의 주소 ... TILdata structureTIL 단일 연결 리스트(Singly linked list)_구조 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조 데이터를 담고 있는 노드들이 연결되어 있는데, 노드의 포인터가 다음이나 이전의 노드와의 연결을 담당함 head 다음에 연결된 노드를 가리키는 변수 맨 처음 노드를 가리키는 변수 참고... pythondata structurelinked listsingly linked listdata structure